import http.server
import socketserver
import webbrowser
from urllib.parse import urlparse
import sys
import signal

# 设置端口
PORT = 8000

# 创建请求处理程序
class MyHandler(http.server.SimpleHTTPRequestHandler):
    def log_message(self, format, *args):
        # 自定义日志格式
        if args[1] != '200' and args[1] != '304':  # 只显示错误
            print(f"\033[91m[错误] {args[0]} {args[1]} {args[2]}\033[0m")

# 创建HTTP服务器
with socketserver.TCPServer(("", PORT), MyHandler) as httpd:
    # 设置优雅退出
    def signal_handler(sig, frame):
        print("\n正在关闭服务器...")
        httpd.server_close()
        sys.exit(0)

    signal.signal(signal.SIGINT, signal_handler)

    # 打印服务器信息
    print(f"""
╭────────────────────────────────────╮
│  简单商城服务器已启动              │
│                                    │
│  访问地址: http://localhost:{PORT}    │
│                                    │
│  按 Ctrl+C 可以停止服务器          │
╰────────────────────────────────────╯
""")

    # 自动打开浏览器
    webbrowser.open(f'http://localhost:{PORT}')

    # 启动服务器
    try:
        httpd.serve_forever()
    except KeyboardInterrupt:
        pass